import pandas as pd
import os


def make_table(dir, category):
    # 初始化白色和黑色数据容器
    white_data = {"主商家编码": [], "规格商家编码": [], "商品名称": [], "颜色及规格": [], "颜色属性": [],
                  "第二属性": []}
    black_data = {"主商家编码": [], "规格商家编码": [], "商品名称": [], "颜色及规格": [], "颜色属性": [],
                  "第二属性": []}

    # 遍历颜色分类目录（黑色/白色）
    for color_folder in os.listdir(dir):
        color_path = os.path.join(dir, color_folder)

        # 跳过非目录文件
        if not os.path.isdir(color_path):
            continue

        # 遍历款式目录
        for style_folder in os.listdir(color_path):
            style_path = os.path.join(color_path, style_folder)

            # 确定尺寸列表
            if '童装' in category:
                sizes = ["110", "120", "130", "140", "150", "160", "170"]
            elif '男装' in category:
                sizes = ["S", "M", "L", "XL", "XXL", "XXXL", "XXXXL", "XXXXXL"]
            else:
                sizes = ["S", "M", "L", "XL", "XXL"]

            # 根据颜色选择数据集
            target_data = white_data if color_folder == "白色" else black_data

            # 生成商品数据
            for size in sizes:
                target_data["主商家编码"].append(style_folder)
                target_data["规格商家编码"].append(f"{style_folder}_{size}")
                target_data["商品名称"].append(f'一件装-{category}T恤')
                target_data["颜色及规格"].append(f"{color_folder};{size}")
                target_data["颜色属性"].append(color_folder)
                target_data["第二属性"].append(size)

    # 创建输出目录
    output_dir = os.path.dirname(dir)
    os.makedirs(output_dir, exist_ok=True)

    # 保存白色商品数据
    if white_data["主商家编码"]:
        pd.DataFrame(white_data).to_excel(
            os.path.join(output_dir, "商品资料_白色.xlsx"),
            index=False
        )
        print("白色商品表格生成成功")
    else:
        print("没有白色商品数据")

    # 保存黑色商品数据
    if black_data["主商家编码"]:
        pd.DataFrame(black_data).to_excel(
            os.path.join(output_dir, "商品资料_黑色.xlsx"),
            index=False
        )
        print("黑色商品表格生成成功")
    else:
        print("没有黑色商品数据")


# 使用示例
make_table('D:/Desk/半托图片/0321/男装/完成', '男装')


def get_style_folders(path):
    """获取完成文件夹下的所有款式目录（合并黑白目录）"""
    base_dir = os.path.join(os.path.dirname(path), '完成')
    values = []

    # 定义需要处理的两个颜色目录
    color_folders = ['白色', '黑色']

    for color in color_folders:
        color_path = os.path.join(base_dir, color)

        # 检查颜色目录是否存在
        if os.path.exists(color_path) and os.path.isdir(color_path):
            # 获取该颜色目录下的所有子目录（过滤文件）
            folders = [
                f for f in os.listdir(color_path)
                if os.path.isdir(os.path.join(color_path, f))
            ]
            values.extend(folders)

            # 打印调试信息
            print(f"已处理 {color} 目录，包含款式数：{len(folders)}")
        else:
            print(f"⚠️ 目录不存在或不是文件夹：{color_path}")

    return values

def write_result(path):
    values=get_style_folders(path)
    print(values)
    try:
        # 加载 Excel 文件
        df = pd.read_excel(path, sheet_name="Sheet1")
        if len(df.columns) < 8:
            for i in range(len(df.columns), 8):
                df[i] = None  # 添加空列
            df.columns = [f"Column_{i+1}" for i in range(len(df.columns))]

        # 根据第二列的值更新第五列
        for index, row in df.iterrows():
            k=str(row[df.columns[0]])
            s = str(row[df.columns[1]])
            if k in values:
                df.at[index, df.columns[6]] = "完成"
                df.at[index, df.columns[7]] = "Z:/系统/自动化/0321-TEMU批上架/男装/完成/" + s + "/" +k
            else:
                df.at[index, df.columns[6]] = "未完成"

        # 保存修改后的文件
        df.to_excel(path, index=False)
        print(f"文件已保存到 {path}")

    except Exception as e:
        print(f"处理文件时出错：{e}")




write_result('D:/Desk/半托图片/0321/男装/1.xlsx')
